/**
 * 快捷操作模块
 * 负责处理系统快捷操作，如关机、重启、休眠等
 */

const { ipcRenderer } = require('electron');
const { handleError, ErrorTypes } = require('../../common/error-handler');
const { SystemControlChannels } = require('../../common/ipc-channels');

/**
 * 初始化快捷操作模块
 */
function initialize() {
    console.log('初始化快捷操作模块...');
    
    // 设置事件监听器
    setupEventListeners();
    
    // 初始化快捷启动器
    initializeQuickLauncher();
    
    console.log('快捷操作模块初始化完成');
}

/**
 * 设置事件监听器
 */
function setupEventListeners() {
    // 绑定所有快捷操作按钮
    bindQuickActionButton('shutdown-btn', SystemControlChannels.SHUTDOWN, '确定要关闭系统吗？');
    bindQuickActionButton('restart-btn', SystemControlChannels.RESTART, '确定要重启系统吗？');
    bindQuickActionButton('sleep-btn', SystemControlChannels.SLEEP, '确定要让系统进入休眠状态吗？');
    
    // 绑定首页的快捷操作按钮
    bindQuickActionButton('index-shutdown-btn', SystemControlChannels.SHUTDOWN, '确定要关闭系统吗？');
    bindQuickActionButton('index-restart-btn', SystemControlChannels.RESTART, '确定要重启系统吗？');
    bindQuickActionButton('index-sleep-btn', SystemControlChannels.SLEEP, '确定要让系统进入休眠状态吗？');
}

/**
 * 绑定快捷操作按钮
 * @param {string} buttonId - 按钮ID
 * @param {string} channel - IPC通道
 * @param {string} confirmMessage - 确认消息
 */
function bindQuickActionButton(buttonId, channel, confirmMessage) {
    const button = document.getElementById(buttonId);
    if (button) {
        button.addEventListener('click', () => {
            if (confirm(confirmMessage)) {
                try {
                    ipcRenderer.send(channel);
                } catch (error) {
                    handleError('执行快捷操作失败', ErrorTypes.SYSTEM, { 
                        error, 
                        action: buttonId,
                        channel 
                    });
                    alert('操作失败，请重试');
                }
            }
        });
    }
}

/**
 * 初始化快捷启动器
 */
function initializeQuickLauncher() {
    try {
        // 从本地存储加载快捷方式配置
        const quickLaunchConfig = localStorage.getItem('quickLaunchConfig');
        const config = quickLaunchConfig ? JSON.parse(quickLaunchConfig) : [];
        
        // 更新快捷启动器显示
        updateQuickLauncherDisplay(config);
        
        // 绑定添加快捷方式按钮
        const addButton = document.getElementById('add-quick-launch');
        if (addButton) {
            addButton.addEventListener('click', () => {
                showQuickLaunchModal();
            });
        }
    } catch (error) {
        handleError('初始化快捷启动器失败', ErrorTypes.APPLICATION, { error });
    }
}

/**
 * 更新快捷启动器显示
 * @param {Array} config - 快捷方式配置
 */
function updateQuickLauncherDisplay(config) {
    const container = document.getElementById('quick-launch-container');
    if (!container) return;
    
    if (!config || config.length === 0) {
        container.innerHTML = `
            <div class="empty-quick-launch">
                <i class="fas fa-rocket"></i>
                <p>暂无快捷方式</p>
                <button id="add-quick-launch" class="btn-add">
                    <i class="fas fa-plus"></i> 添加
                </button>
            </div>
        `;
        return;
    }
    
    container.innerHTML = config.map(item => `
        <div class="quick-launch-item" data-path="${item.path}">
            <div class="quick-launch-icon">
                <i class="${item.icon || 'fas fa-file'}"></i>
            </div>
            <div class="quick-launch-name">${item.name}</div>
            <div class="quick-launch-actions">
                <button class="btn-edit" onclick="editQuickLaunch('${item.id}')">
                    <i class="fas fa-edit"></i>
                </button>
                <button class="btn-delete" onclick="deleteQuickLaunch('${item.id}')">
                    <i class="fas fa-trash"></i>
                </button>
            </div>
        </div>
    `).join('');
    
    // 绑定快捷方式点击事件
    container.querySelectorAll('.quick-launch-item').forEach(item => {
        item.addEventListener('click', (e) => {
            if (!e.target.closest('.quick-launch-actions')) {
                const path = item.dataset.path;
                if (path) {
                    ipcRenderer.send('launch-application', path);
                }
            }
        });
    });
}

/**
 * 显示快捷方式编辑模态框
 * @param {string} id - 可选，要编辑的快捷方式ID
 */
function showQuickLaunchModal(id = null) {
    // 实现快捷方式编辑模态框显示逻辑
}

/**
 * 编辑快捷方式
 * @param {string} id - 快捷方式ID
 */
function editQuickLaunch(id) {
    // 实现编辑快捷方式逻辑
}

/**
 * 删除快捷方式
 * @param {string} id - 快捷方式ID
 */
function deleteQuickLaunch(id) {
    // 实现删除快捷方式逻辑
}

// 导出模块
module.exports = {
    initialize,
    bindQuickActionButton,
    initializeQuickLauncher,
    updateQuickLauncherDisplay
}; 